草庐IT

java midi 延迟

全部标签

c# - 延迟事件处理直到事件被触发

在C#中,延迟处理所有已知事件直到实体被完全修改的最佳方法是什么?例如,一个实体-MyEntity-具有属性ID、名称和描述...publicclassMyEntity{publicInt32ID{get;set;}publicStringName{get;set;}publicStringDescription{get;set;}}当修改每个属性时,每次修改都会触发一个事件。有时,ID是唯一被修改的属性,有时所有属性都被修改。我希望修改事件的注册监听器等待,直到“批处理”中被修改的所有属性都被修改。实现此目标的最佳方法是什么?在我看来,类似于UnitOfWork模式的东西,可以在调用

c# - 什么时候返回延迟的 IEnumerable<T> 是错误的形式

我很好奇是否有人对何时返回延迟的IEnumerable有任何经验法则或最佳实践或调用ToArray()在从函数返回之前在它上面。例如,作为API的使用者,我认为我更喜欢IEnumerableGetWidgets()这样的方法扔一个HttpException当我调用它而不是在枚举结果时抛出它。publicIEnumerableGetWidgets(IEnumarablewidgetIds){returnwidgetIds.Select(id=>GetWidgetFromWidgetWebService(id));} 最佳答案 我总是喜

c# - 在 .Net 4.0 中从 .Net 4.5 绑定(bind)的延迟属性

如何在.Net4.0中实现.Net4.5的延迟属性(描述here)?我知道我无法从BindingBase继承,因为ProvideValue是密封的。我可以实现MarkupExtension,但这意味着我现在必须重写BindingExtension的所有属性,还有其他方法吗? 最佳答案 最后,我决定使用组合将DelayedBinding实现为MarkupExtension。我遇到的唯一问题是如果IProvideValueTarget中的TargetProperty为null,DataTemplatesProvideValue应该返回此

c# - 延迟域事件的创建和调度

我一直在使用DomainEventspattern一段时间以来-它使我们能够在我们的领域层中封装尽可能多的行为,并为我们应用程序的其他部分提供一种很好的方式来订阅领域事件。目前我们正在使用一个静态类,我们的域对象可以调用它来引发事件:staticclassDomainEvents{publicstaticIEventDispatcherDispatcher{get;set;}publicstaticvoidRaise(TEvente){if(e!=null){Dispatcher.Dispatch(e);}}}如您所见,这只不过是IEventDispatcher的垫片。它实际上执行调度

c# - 为什么转换为 IEnumerable 的数组会忽略延迟执行?

我今天遇到了这个问题,但我不明白发生了什么:enumFoo{Zero,One,Two}voidMain(){IEnumerablea=newFoo[]{Foo.Zero,Foo.One,Foo.Two};IEnumerableb=a.ToList();PrintGeneric(a.Cast());PrintGeneric(b.Cast());Print(a.Cast());Print(b.Cast());}publicstaticvoidPrintGeneric(IEnumerablevalues){foreach(Tvalueinvalues){Console.WriteLine(v

c# - LINQ 如何在 using 语句中延迟执行

假设我有以下内容:privateIEnumerableMyFunc(parametera){using(MyDataContextdc=newMyDataContext){returndc.tablename.Select(row=>row.parameter==a);}}privatevoidUsingFunc(){varresult=MyFunc(newa());foreach(varrowinresult){//Dosomething}}根据文档,linq执行将推迟到我实际枚举结果时,该结果出现在foreach的行中。但是,using语句应强制在调用MyFunct()结束时可靠地

c# - C# 中延迟执行和懒惰求值的区别

能否请您告诉我C#中延迟执行和惰性求值之间的确切差异是什么?这两个是同义词。有人可以举例说明区别吗? 最佳答案 实际上,它们的意思本质上是一样的。但是,最好使用术语延迟。懒惰是指“除非万不得已才去做。”延迟意味着“在调用者实际使用它之前不计算结果。”在实践中,当调用者决定使用评估结果时(即开始遍历IEnumerable),这正是需要完成“工作”的时间点(例如向数据库)。术语延迟更具体/描述了实际发生的事情。当我说我懒惰时,意思是我避免做不必要的工作;真正的含义是模棱两可的。然而,当我说执行/评估是延迟时,这实质上意味着我根本没有给你

c# - .NET 程序集的延迟签名有什么意义?

我注意到,在我使用AssemblyDelaySignAttribute指示程序集正在开发中并且现在不需要签名之后,我将不得不使用sn-Vrfoolib.dll以注册强名称验证,以便为该程序集关闭。做这个圈子有什么意义?为什么不在程序集完全完成之前不对其进行签名?这不是更麻烦吗? 最佳答案 几个原因...不能将没有强名称的程序集添加到GAC与#1相关,不在GAC中的组件不会从NGEN中获益太多在使用部分名称进行程序集探测和加载时,强命名程序集表现出不同的行为。没有强名称的程序集不能被强名称程序集引用因此,在严格控制签名过程的组织中,能

c# - C#中的延迟执行

如何在C#中实现我自己的延迟执行机制?例如我有:stringx=DoFoo();是否可以施展魔法,让DoFoo在我“使用”x之前不执行? 最佳答案 您可以使用lambdas/委托(delegate):Funcdoit=()=>DoFoo();//-or-Funcdoit=DoFoo;稍后您可以调用doit就像一个方法:stringx=doit();我想你能得到的最接近的是这样的:Lazyx=DoFoo;stringy=x;//"use"x定义为Lazy类似于此(未经测试):publicclassLazy{privatereadonl

c# - c#中For循环的时间延迟

我如何在一定的旋转后在循环中使用时间延迟?假设:for(inti=0;i我希望每8次旋转后延迟1秒。 最佳答案 有很多方法可以做到这一点:方法一:极其糟糕:忙等待:DateTimetimeToStartUpAgain=whatever;while(DateTime.Now这是一件可怕的事情;操作系统会假设你正在做有用的工作,并会分配一个CPU来做除了旋转之外的任何事情。永远不要这样做,除非您知道自旋只会持续几微秒。基本上,当您这样做时,您已经雇用了某人为您看表;那不经济。方法二:非常糟糕:休眠线程。让线程休眠也是一件可怕的事情,但没